home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / hdf / unix / examples.lha / examples / sds / slices / windows.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-10-22  |  1.4 KB  |  65 lines

  1.  
  2.  
  3. /* Program windows                                */
  4. /* This program writes out a 4D array in hdf format.             */
  5. /* dimsizes={2,4,5,7} defines the dimension sizes of the output array.  */
  6. /* windims={1,1,5,7} defines the dimension sizes of the slice (window).  */
  7. /* dims={1,1,6,8} defines the dimension sizes of the input data array.   */
  8. /* dims may be larger than windims. In this case, that actual data may    */
  9. /* not be  contiguous in the input data array.                */
  10.  
  11. main()    {
  12.  
  13.     int rank=4;
  14.     int i, j, ret;
  15.     int dimsizes[4],dims[4], windims[4];
  16.     float data[1][1][6][8];
  17.  
  18.     /* initialization    */
  19.     
  20.     dimsizes[0] = 2;
  21.     dimsizes[1] = 4;
  22.     dimsizes[2] = 5;
  23.     dimsizes[3] = 7;
  24.  
  25.     dims[0] = 1;
  26.     dims[1] = 1;
  27.     dims[2] = 6;
  28.     dims[3] = 8;
  29.  
  30.     windims[0] = 1;
  31.     windims[1] = 1;
  32.     windims[2] = 5;
  33.     windims[3] = 7;
  34.      
  35.     for (i=0; i<dims[2];i++)
  36.         for (j=0; j<dims[3]; j++) data[0][0][i][j]=10.0*i+1.0*j;
  37.  
  38.     ret = DFSDsetdims(rank, dimsizes);
  39.     if (ret != 0)    {
  40.         printf("Error in DFSDsetdims, error no= %d.\n",ret);
  41.     }
  42.  
  43.     ret = DFSDstartslice("wstest.hdf");
  44.     if (ret != 0)    {
  45.         printf("Error in DFSDstartslice, error = %d.\n", ret);
  46.     }
  47.  
  48.     for (i=0;i<dimsizes[0]; i++)
  49.         for (j=0; j<dimsizes[1]; j++)    {
  50.         ret = DFSDputslice(windims,data,dims);
  51.         if (ret != 0)     {
  52.             printf("Error in DFSDputslice, ret=%d, i=%d, j=%d.\n",
  53.                 ret, i, j);
  54.         }
  55.         }
  56.  
  57.     printf("Calling DFSDendslice.\n");
  58.     ret = DFSDendslice();
  59.     if (ret != 0)    {
  60.         printf("Error in calling endslice, ret= %D.\n", ret);
  61.     }
  62.  
  63. }
  64.  
  65.